package com.qf.ui;

import javax.swing.*;
import javax.swing.border.EmptyBorder;
import java.awt.*;

public class LoginFrame extends JFrame {
    //定义登录画框类型
    public LoginFrame() {
        //定义画框初始化设定 定义init初始化
        init();
    }
    //定义初始化方法
    public void init(){
        //设定画框的名字
        this.setTitle("登录系统");
        //设定画框尺寸
        this.setSize(300, 200);
        //居中显示
        this.setLocationRelativeTo(null);
        //设定画布
        JPanel contentPane = createContentPage();
        //将画布添加到相应的画框
        this.setContentPane(contentPane);
    }

    private JPanel createContentPage(){
        //创建具有边框布局的画布
        JPanel p=new JPanel(new BorderLayout());//上 下 左 右 中  五个布局结构筑成
        //设定边框布局结构的边线设置
        p.setBorder(new EmptyBorder(8,8,8,8));
        //为边框布局的上部结构添加内容
        p.add(BorderLayout.NORTH,new JLabel("登录考试系统",JLabel.CENTER));
        //添加中部用户名及密码文本框结构
        p.add(BorderLayout.CENTER,createCenterPane());
        //添加登录及退出按钮的设定
        p.add(BorderLayout.SOUTH,createBtnPane());
        return p;
    }

    //定义登录及退出按钮面板
    private JPanel createBtnPane(){
        //创建面板布局
        JPanel p=new JPanel(new FlowLayout());//创建流式布局面板
        //创建面板按钮
        JButton login=new JButton("登录");
        JButton cancel=new JButton("取消");
        //将按钮放置到面板当中
        p.add(login);
        p.add(cancel);
        return p;
    }
    //定义用户名及密码面板
    private JPanel createCenterPane(){
        //创建一个边框布局面板
        JPanel p=new JPanel(new BorderLayout());
        //定义边框布局的边线
        p.setBorder(new EmptyBorder(8,0,0,0));
        //在上部添加用户名和密码面板
        p.add(BorderLayout.NORTH,createIdPwdPane());
        //在中部添加错误提示信息
        p.add(BorderLayout.CENTER,new JLabel("错误信息提示",JLabel.CENTER));
        return p;
    }

    //定义用户名和密码面板
    private JPanel createIdPwdPane(){
        JPanel p=new JPanel(new GridLayout(2,1,0,6));//设定网格布局 2行 1列
        p.add(createIdPane());//添加用户文本框
        p.add(createPwdPane());//添加密码面板
        return p;
    }

    //定义用户文本框面板
    public JPanel createIdPane(){
        JPanel p=new JPanel(new BorderLayout(6,0));
        //设置面板左侧 添加编号
        p.add(BorderLayout.WEST,new JLabel("编号"));
        //创建一个文本框对象
        JTextField idField=new JTextField();
        //将文本框添加到面板中间 放置到编号后方
        p.add(BorderLayout.CENTER,idField);
        return p;
    }
    //定义用户密码
    public JPanel createPwdPane(){
        JPanel p=new JPanel(new BorderLayout(6,0));
        //设置面板左侧 添加编号
        p.add(BorderLayout.WEST,new JLabel("密码"));
        //创建一个密码文本框对象
        JPasswordField pwdField=new JPasswordField();
        //将文本框添加到面板中间 放置到编号后方
        p.add(BorderLayout.CENTER,pwdField);
        return p;
    }
}
